'''
函数
1. 函数可以设置默认值 function(a=1,b=2)
2. 函数可变参前面加*  function(*args)

全局变量
1. 不在函数中定义的变量
2. 使用global关键字标识的变量

模块
1. 不同模块中定义了相同名称的函数使用 from module import function
'''


'''阶乘函数'''
def fac(num):
    result = 1
    for n in range(1, num + 1): 
        result *= n

    return result

m = int(input('m = '))
n = int(input('n = '))
# 阶乘 
print(fac(m) // fac(n) // fac(m-n))

'''函数定义默认值'''
def add(a = 0, b = 0, c = 0):
    return a + b + c

print(add(1))
print(add(1, 2))
print(add(1, 3, 5))
# 加了变量名，可以按顺序传参
print(add(a = 3, c = 5, b = 4))

def sum(*args):
    result = 0
    for n in args:
        result += n
    return result

print(sum(1))
print(sum(1,3,4))
